package com.anan;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * @Author: Painter
 * @project_name: aircraft-war
 * @system_login: sunshine
 * @time: 2023/11/520:16
 */


public class GameFrame extends JFrame {

    public static final int WIDTH = 1200;  // 屏幕宽
    public static final int HEIGHT = 900;  // 屏幕高

    public GameFrame() {
        setTitle("飞机大战");  // 设置标题

        setBounds(0,0,WIDTH,HEIGHT);  // 设置主窗体大小
        setResizable(false);  // 不可以改变大小
        setLocationRelativeTo(null);  // 举行红显示
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  // 点击关闭按钮退出程序，关闭主窗口
        GamePanel gamePanel = new GamePanel();  // 创建一个面板对象
        this.add(gamePanel);  // 将面板添加到窗口中
        setVisible(true);  // 显示窗口
        createChildWindow(gamePanel);  // 创建子窗口，用于选择手动发射子弹还是自动发射子弹
    }
    public void createChildWindow( GamePanel panel){
        String str = "飞机大战5.0\n作者 ：pinter\n时间：2022.08.05\n本游戏分为自动发射子弹和手动发射子弹\n" +
                "自动发射子弹需要将GamePanel类中的automatic属性设置为true\n" +
                "键盘的Z键为暂停键，空格键自动发射子弹时为全屏炸弹\n手动发射子弹子弹时为发射子弹键盘B为全屏炸弹";
        JOptionPane.showMessageDialog(null,str);// 显示提示消息
        JFrame jf = new JFrame();  // 创建以新的主窗口
        jf.setLayout(null);  // 设置布局管理器为空，使组件相对定位
        jf.setBounds(0,0,300,200);  // 设置窗口的大小
        jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);  // 关闭方式，点击关闭关闭子窗口，不会退出程序和关闭主窗口
        jf.setLocationRelativeTo(null);  // 居中显示

        JLabel lblNewLabel = new JLabel("选择子弹射击方式");  // 创建以个文本标签
        lblNewLabel.setFont(new Font("宋体", Font.BOLD, 15));  // 设置字体
        lblNewLabel.setBounds(50, 10, 200, 20);  // 设置坐标宽高
        jf.add(lblNewLabel); // 将这个标签添加到jf中


        JRadioButton manuals = new JRadioButton("手动射击");  // 创建单选钮
        JRadioButton automatics = new JRadioButton("自动射击");  // 创建单选钮

        // 创建按钮组是为了在按钮组中只能选择一个按钮
        ButtonGroup group = new ButtonGroup();  // 创建按钮组
        group.add(manuals);  // 将单选按钮添加到按钮组中
        group.add(automatics);  // 将单选按钮添加到按钮组中

        automatics.setSelected(true);  // 设置默认选择

        // 设置手动发射单选钮的属性
        manuals.setFont(new Font("宋体", Font.BOLD, 15));
        manuals.setBounds(48, 49, 100, 20);
        jf.add(manuals);
        // 设置自动发射单选钮的属性
        automatics.setFont(new Font("宋体", Font.BOLD, 15));
        automatics.setBounds(150, 49, 100, 20);
        jf.add(automatics);
        // 创建以个确定按钮
        JButton btnSubmit = new JButton("确定");
        btnSubmit.setFont(new Font("宋体", Font.BOLD, 15));
        btnSubmit.setBounds(100, 100, 100, 20);
        jf.add(btnSubmit);

        // 确定按钮事件
        btnSubmit.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                // 设置GamePanel类的 automatic 属性，确定是自动发射还是手动发射
                panel.automatic = !manuals.isSelected();  // 如果选择手动单选，返回false
                panel.automatic= automatics.isSelected();  // 如果选择自动发射单选，返回ture
                jf.dispose();  // 关闭当前子窗口
            }
        });

        jf.setVisible(true);  // 显示子窗口
    }

}
